using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Flujo.Actividades;
using ConexionBBDD.Actividades;

namespace Interfaz.Actividades
{
    public partial class DialogoActividadesRuta : Form
    {
        private Int32 index;
        private Ruta ruta;
        private IFRutaActividades ifRutaActividades;

        public DialogoActividadesRuta(Int32 index, Ruta ruta)
        {
            this.index = index;
            this.ruta = ruta;
            this.ifRutaActividades = new IFRutaActividades(index, ruta);

            InitializeComponent();

            configurarDialogo();
            actualizarBotones();
        }

        private void configurarDialogo()
        {
            this.nombreRuta.Text = ruta.nombre;

            this.actividadesDisponibles.DataSource = ifRutaActividades.listarActividadesDisponibles();
            this.actividadesDisponibles.DisplayMember = "nombre";
            this.actividadesDisponibles.ValueMember = "T_Actividades_ID";

            this.actividadesAsignadas.DataSource = ifRutaActividades.listarActividadesAsignadas();
            this.actividadesAsignadas.DisplayMember = "nombreActividad";
            this.actividadesAsignadas.ValueMember = "T_Actividades_ID";
        }

        private void actualizarListas()
        {
            this.actividadesDisponibles.DataSource = ifRutaActividades.listarActividadesDisponibles();
            this.actividadesAsignadas.DataSource = ifRutaActividades.listarActividadesAsignadas();
        }

        private void actualizarBotones()
        {
            if (this.actividadesDisponibles.Items.Count > 0)
                this.aniadir.Enabled = true;
            else
                this.aniadir.Enabled = false;

            if (this.actividadesAsignadas.Items.Count > 0)
                this.quitar.Enabled = true;
            else
                this.quitar.Enabled = false;
        }

        private void aniadir_Click(object sender, EventArgs e)
        {
            Int32 index = (Int32)this.actividadesDisponibles.SelectedValue;

            this.ifRutaActividades.aniadirActividadRuta(index);

            actualizarListas();
            actualizarBotones();
        }

        private void quitar_Click(object sender, EventArgs e)
        {
            Int32 index = (Int32)this.actividadesAsignadas.SelectedValue;

            this.ifRutaActividades.eliminarActividadRuta(index);

            actualizarListas();
            actualizarBotones();
        }

        private void guardar_Click(object sender, EventArgs e)
        {
            this.ifRutaActividades.confirmarModificaciones();

            this.Close();
        }

        private void cancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}